[INV-MIGRATION-190] Создать таблицу fridge_db.waste_logs
Развертывание структур учета утилизации отходов и порчи продуктов
NoteКраткая карточка задачи
- Репозиторий / Компонент:
fridge-service/waste-service(Базаfridge_db, контур INVENTORY). - Целевая СУБД: PostgreSQL v15+.
- Ссылка на Метод: Интерфейс и состояния экрана авторизации
- Статус: Готово к реализации
- Инструкция по шагам: Выполнить DDL-миграцию для создания таблицы учета фактов утилизации и порчи продуктов (
waste_logs) внутри базыfridge_db. Данное архитектурное решение позволяет фиксировать бизнес-причины выброса еды в рамках одной ACID-транзакции со списанием остатков (Шаг 7).
-- Скрипт миграции для fridge_db (Контур INVENTORY)
CREATE TABLE IF NOT EXISTS fridge_db.waste_logs (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
home_group_id VARCHAR(64) NOT NULL,
user_id VARCHAR(64) NOT NULL,
trace_id VARCHAR(128) NOT NULL, -- X-Request-ID для сквозного трекинга инцидентов
waste_reason VARCHAR(32) NOT NULL, -- ENUM со скриншота: 'PROPALO', 'SPOILT', 'EXPIRED'
space_type VARCHAR(16) NOT NULL, -- 'HOME' / 'OFFICE'
spent_items JSONB NOT NULL, -- Массив утилизированного сырья: [{"food_element_id": "X", "quantity": 0.5}]
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Индекс для аналитики объемов и причин порчи еды в разрезе групп
CREATE INDEX IF NOT EXISTS idx_waste_logs_group_reason
ON fridge_db.waste_logs (home_group_id, waste_reason, created_at DESC);